﻿#pragma once
#include <vtkObject.h>
#include <vtkAxesActor.h>
#include <vtkRenderer.h>
#include <vtkOrientationMarkerWidget.h>
#include <vtkRenderWindowInteractor.h>
#include "QIVtkSelectionPipeline.h"

class vtkTipsCoordinate : public vtkObject
{
public:
    vtkTypeMacro(vtkTipsCoordinate, vtkObject);
    static vtkTipsCoordinate* New();

    vtkTipsCoordinate();
    void SetRenderer(vtkSmartPointer<vtkRenderer> renderer, vtkSmartPointer<vtkRenderWindowInteractor> renderInteractor);
    void AddToRenderer();
    void HandlePickable(class MainWindow* m_mainWindows);
    virtual ~vtkTipsCoordinate();

private:
    vtkSmartPointer<vtkRenderer> m_renderer;
    vtkSmartPointer<vtkRenderWindowInteractor> m_renderInteractor;

    vtkSmartPointer<vtkAxesActor> axesActor;
    vtkSmartPointer<vtkOrientationMarkerWidget> axesWidget;

    vtkSmartPointer<vtkAxesActor> globalAxesActor;

    std::vector<Handle(QIVtkSelectionPipeline)> pickableActors;
};

